package com.container;

public class Usuario {
	private int id;
	private String nombre="";
	private String contrasena="";
	private String email="";
	private String nacimiento="";
	private String direccion="";
	
	public Usuario(int id, String name){
		this.id = id;
		this.nombre = name;
		email = "introduzca nuevo email";
		nacimiento="introduzca nueva fecha";
		direccion="introduzca nueva direccion";
	}
	
	public Usuario(String nombre, String contrasena, String nacimiento, String direccion, String email){
		this.nombre = nombre;
		this.contrasena = contrasena;
		this.nacimiento = nacimiento;
		this.direccion = direccion;
		this.email = email;
	}
	
	public Usuario(String name) {
		this.nombre = name;
		email = "introduzca nuevo email";
		nacimiento="introduzca nueva fecha";
		direccion="introduzca nueva direccion";
	}
	
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getNacimiento() {
		return nacimiento;
	}

	public void setNacimiento(String nacimiento) {
		this.nacimiento = nacimiento;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getName(){
		return nombre;
	}
	
	public int getId(){
		return id;
	}
	
	/**
	 * Comprueba si el usuario "user" corresponde al usuario actual.
	 * @param user : usuario a comprobar con el actual (Data.getUsuario()).
	 * @return true si el usuario "user" a cambiado respecto al actual
	 * @author Javier
	 */
	public static boolean userHasChanged (Usuario user){
			// Si uno es null y el otro no
		return user == null && Data.getUsuario() != null
	    		|| user != null && Data.getUsuario() == null
	    	// o si el "user" es distinto al Usuario actual
	    		|| (user != null && !user.equals(Data.getUsuario()))
	    	// o si el "user" tiene un nombre distinto al del usuario Actual
	    		|| (user != null && !user.getName().equals(Data.getUsuario().getName()));
	}
	
	/**
	 * Comprueba si el nombre de usuario a cambiado
	 * @param userWhenCreated
	 * @return true si el usuario a cambiado el campo Nombre
	 * @author Javier
	 */
	public static boolean userNameChanged(Usuario user) {
		return user != null && Data.getUsuario() != null
				&& !user.getName().equals(Data.getUsuario().getName());
	}

	@Override // Auto-generated
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		return result;
	}

	@Override // Auto-generated
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Usuario other = (Usuario) obj;
		if (id != other.id)
			return false;
		return true;
	}
}
